package com.shangyueshang.model;

import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.shangyueshang.enums.OrderType;
import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;

/**
 * @author: JokeyZheng
 * @email: zhengjingfeng@ruqimobility.com
 * @created: 2022/1/14 18:41
 * @version: v1.0.0
 * <p>平台订单信息表</p>
 */
@Data
@TableName(value = "order_info")
public class Order implements Serializable {
	
	/**
	 * 主键ID
	 */
	@TableId
	private Long id;
	
	/**
	 * 店铺
	 */
	private String shop;
	
	/**
	 * 交易类型。
	 * 1:Order(订单)
	 * 2:Order_Retrocharge(订单逆向收费)
	 * 3:Promotional fee(促销费用)
	 * 4:Service Fee(服务费)
	 * 5:Refund(退款)
	 * 6:Fee Adjustment(物流赔偿费用)
	 * 7:FBA Inventory Fee(仓储费/移除费)
	 * 8:Early Reviewer Program(早期评论人)
	 * 9:Adjustment(换货)
	 * 10:Transfer(转账)
	 *
	 * @see OrderType
	 */
	private String type;
	
	/**
	 * 订单号
	 */
	private String orderId;
	/**
	 * SKU。与交易相关的商品SKU
	 */
	private String sku;
	/**
	 * 买家订单中的商品数量
	 */
	private Integer quantity;
	/**
	 * 商品销售额。订单中商品的销售额
	 * 单位：美元/英镑/欧元
	 */
	private BigDecimal productSales;
	/**
	 * 商品销售税。针对商品销售向买家收取的销售税
	 */
	private BigDecimal productSalesTax;
	
	/**
	 * 运费款项，买家支付的运费，例如加急快递费用
	 * 单位：美元/英镑/欧元
	 */
	private BigDecimal shippingCredits;
	
	/**
	 * 运费款项税，针对配送向买家收取的销售税
	 */
	private BigDecimal shippingCreditsTax;
	
	/**
	 * 促销返点。针对促销优惠从卖家账户余额中扣除的金额
	 * 单位：美元/英镑/欧元
	 */
	private BigDecimal promotionalRebates;
	
	/**
	 * 促销返点税。针对促销返点向买家收取的销售税
	 */
	private BigDecimal promotionalRebatesTax;
	
	/**
	 * 商城预扣税。由平台代收并缴纳给税务机关的金额
	 * 单位：美元/英镑/欧元
	 */
	private BigDecimal marketplaceWithheldTax;
	
	/**
	 * 佣金(或销售费用)，平台手续费(销售额的15%)
	 * 单位：美元/英镑/欧元
	 */
	private BigDecimal sellingFees;
	
	/**
	 * 配送费(或物流费)。针对订单配送收取的费用
	 * 单位：美元/英镑/欧元
	 */
	private BigDecimal fbaFees;
	
	/**
	 * 其他交易费用。包括销售税征缴费、按件收取的费用和销售佣金
	 * 单位：美元/英镑/欧元
	 */
	private BigDecimal otherTransactionFees;
	
	/**
	 * 其他费用。对账户进行的其他盘点，如付款
	 * 单位：美元/英镑/欧元
	 */
	private BigDecimal otherFees;
	
	/**
	 * 总计(卖家应得)。交易导致的卖家余额变化
	 * 单位：美元/英镑/欧元
	 */
	private BigDecimal total;
	
	/**
	 * 交易时间
	 */
	@JsonFormat(pattern = "yyyy-MM-dd")
	private LocalDateTime tradeDate;
	
	/**
	 * 导入时间
	 */
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	private LocalDateTime createTime;
	
}
